1. Field
The present disclosure pertains to the field of information processing, and more particularly, to the field of security in information processing systems.
2. Description of Related Art
Confidential information is stored, transmitted, and used by many information processing systems. Therefore, techniques have been developed to protect confidential information by encrypting it, for example, using an algorithm according to the Advanced Encryption Standard (AES) specification adopted by the National Institute of Science and Technology as Federal Information Processing Standard 197.
AES algorithms use a private key to transform unencrypted information (plain-text) into encrypted information (cipher-text) that generally has no meaning unless subsequently decrypted by a reverse transformation using the private key. AES algorithms include an iterative sequence of operations, where each iteration is referred to as a round. A round is performed on the plain-text to produce a first intermediate result, and then repeated exactly or substantially on the first intermediate result to produce a second intermediate result, and so on, until the information is satisfactorily encrypted. The private key is expanded or otherwise transformed to derive a series of round keys so that a different key is used during each round.
Each AES round is performed on 128 bits of data arranged in a two dimensional array, called the state. Each encryption round, except the last round, includes combining the round key with the state (add-key operations), processing the state using a non-linear substitution table (S-box operations), shifting the rows of the state (shift-row operations), and mixing the columns of the state (mix-column operations). The mix-column operation is omitted from the last round. The number of rounds depends on the length of the key. AES may use a 128, 192, or 256 bit key; the number of rounds is 10, 12, or 14, respectively.